package com.leco.exam.common.biz.errorcode;

public enum ErrorCode {
    /**
     * 正确
     **/
    SUCCESS_CODE(200, "成功"),
    /**
     * 参数错误
     **/
    BAD_REQUEST(400, "无效的请求"),
    /**
     * 限制调用
     **/
    UNAUTHORIZED_CODE(401, "未授权的访问"),
    /**
     * 禁止访问
     **/
    FORBIDDEN_CODE(403, "没有权限"),
    /**
     * 资源没找到
     **/
    NOT_FOUND_CODE(404, "资源不存在"),
    /**
     * 限流
     **/
    RATE_LIMIT(429, "网络不好,请稍后再试"),
    /**
     * 服务器错误
     **/
    SERVER_ERROR_CODE(500, "系统错误"),

    /**
     * 错误码规范
     * 0位 错误级别 1.系统错误， 2.为业务错误
     * 1~2位 错误模块，划分粒度为业务维度，如：用户、问题等
     * 3~4位 具体错误码
     * 例：20502 参考：https://open.weibo.com/wiki/Error_code
     **/

    /**
     * 控制器
     */
    SYS_PARAM_INVALID(10201, "参数错误"),
    SYS_METHOD_NOT_SUPPORT(10202, "方法不支持"),

    /**
     * 通用失败码，没有需求对失败做处理的就用这个，不然要定义很多code
     */
    COMMON_BIZ_FAIL(100000, "业务处理失败"),

    /**
     * 用户
     */
    BIZ_USER_NAME_TOO_LONG(20101, "用户名过长"),

    ;




    public static int BIZ_MIN_CODE = 10000;
    private int code;
    private String message;

    public void setMessage(String message) {
        this.message = message;
    }

    public String getMessage() {
        return this.message;
    }

    public void setCode(int code) {
        this.code = code;
    }

    public int getCode() {
        return code;
    }

    private ErrorCode(int code, String message) {
        this.code = code;
        this.message = message;
    }
}
